﻿procedure;
var
  QIG_VK_SL_ID:TStringList;
  QIG_VK_Data, QIG_VK_ID, QIG_VK_filtr, QIG_VK_Value : string;
  QIG_VK_i :integer;
  QIG_VK_SL: TStringList;
  QIG_VK_OK : boolean;
  
begin
  AppServer.SetDSTransferData(SourceName,'6269,5',nttNonLicAndNonNLP,lttAll,[mtaInsert,mtaUpdate,mtaDelete],[mtaInsert]);
  AppServer.SetDSTransferData(SourceName,'6269,5',nttNonLicAndNLP,lttNonLangOrNonNLP,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'6269,5',nttLicAndNonNLP,lttLangOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'6269,5',nttLicAndNLP,lttNonNLPOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'6269,5',nttNLPOnly,lttNLPOnly,[mtaIUpdate],[]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttNonLicAndNonNLP,lttAll,[mtaInsert,mtaUpdate,mtaDelete],[mtaInsert]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttNonLicAndNLP,lttNonLangOrNonNLP,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttLicAndNonNLP,lttLangOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttLicAndNLP,lttNonNLPOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttNLPOnly,lttNLPOnly,[mtaIUpdate],[]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttNonLicAndNonNLP,lttAll,[mtaInsert,mtaUpdate,mtaDelete],[mtaInsert]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttNonLicAndNLP,lttNonLangOrNonNLP,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttLicAndNonNLP,lttLangOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttLicAndNLP,lttNonNLPOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttNLPOnly,lttNLPOnly,[mtaIUpdate],[]);
  M17059359_10;  // NEMAZAT, STANDARDNI SOUCAST REINSTALACE

  
  //SPUSTIT Na GLOBALNICH DB
  //ViKu - naplneni noveho atributu "6657071,10016 podle údaje 10086,10016 v Sk legislativě a nulou v CZ legislative
  QIG_VK_SL_ID := TStringList.Create;
  try
    // naplneni pro SK legislativu
    QIG_VK_filtr := Format('("237265,10016"=''%%'') or ("237265,10016" is null)',['740878,10']);
    QIG_VK_Data := AppServer.GetDBKeyValues(SourceName,rmPrimary,'6267,10016',QIG_VK_filtr);
    StringToSl(QIG_VK_Data,';',QIG_VK_SL_ID);
    QIG_VK_i := 0;
    while QIG_VK_i < QIG_VK_SL_ID.Count do
    begin
      //jen tam kde neni dosud vyplnena hodnota
      QIG_VK_ID := QIG_VK_SL_ID.Strings[QIG_VK_i];
      QIG_VK_Value := AppServer.GetDBAtrValue(SourceName,rmPrimary,UserLang,'6267,10016','6657071,10016',QIG_VK_ID);
      if QIG_VK_Value = '' then
      begin
        QIG_VK_Value := AppServer.GetDBAtrValue(SourceName,rmPrimary,UserLang,'6267,10016','10086,10016',QIG_VK_ID);
        AppServer.SetDBAtrValue(SourceName,UserLang,'6267,10016','6657071,10016',QIG_VK_ID,QIG_VK_Value);
      end;
      QIG_VK_i := QIG_VK_i + 1;
    end;
    //naplneni pro CZ legislativu (zde bude needitovatelny), ale musi byt naplneny proto aby to mohl byt povinny udaj
    QIG_VK_SL_ID.Clear;
    QIG_VK_filtr := Format('("237265,10016"=''%%'')',['745998,10']);
    QIG_VK_Data := AppServer.GetDBKeyValues(SourceName,rmPrimary,'6267,10016',QIG_VK_filtr);
    StringToSl(QIG_VK_Data,';',QIG_VK_SL_ID);
    QIG_VK_i := 0;
    while QIG_VK_i < QIG_VK_SL_ID.Count do
    begin
      QIG_VK_ID := QIG_VK_SL_ID.Strings[QIG_VK_i];
      QIG_VK_Value := AppServer.GetDBAtrValue(SourceName,rmPrimary,UserLang,'6267,10016','6657071,10016',QIG_VK_ID);
      if QIG_VK_Value = '' then
      begin
        //tam kde neni naplnena hodnota
        AppServer.SetDBAtrValue(SourceName,UserLang,'6267,10016','6657071,10016',QIG_VK_ID,'0');//needitovatelny
      end;
      QIG_VK_i := QIG_VK_i + 1;
    end;
  finally
    QIG_VK_SL_ID.Free;
  end;  
  
  //SPUSTIT Na GLOBALNICH DB
  //ViKu - smazaní všech cizích maker na událost "Před otevřením datového řezu" u DŘ 6299,10016
  //Pokud existuje "nase" vazba - ponechá se, pokud nase vazby chybí , založí se
  //mazani dat
  QIG_VK_data := AppServer.GetDBLinkKeyValue(SourceName, rmPrimary, '141,0', '6299,10016', '6275168,10016');
  if QIG_VK_data <> '' then
  begin
    QIG_VK_SL := TStringList.Create;
    try
      StringToSl(QIG_VK_data,';',QIG_VK_SL);
      QIG_VK_i := 0;
      while QIG_VK_i < QIG_VK_SL.Count do
      begin
        QIG_VK_ID := QIG_VK_SL.Strings[QIG_VK_i];
        //ID uzlu 10016 - nemazat
        if (QIG_VK_ID = '6667133,10016') 
          then  QIG_VK_OK := true  //nasla se "nase" vazba (nemazat)
          else  AppServer.DeleteDBRecord(SourceName,'141,0', QIG_VK_ID, false);  //smazat
        QIG_VK_i := QIG_VK_i + 1;
      end;
      if not QIG_VK_OK then
      begin
        //nebyla nalezena nase vazba - zalozit
        QIG_VK_SL.Clear;
        QIG_VK_SL.Values['ic'] := '';
        QIG_VK_SL.Values['u'] := '10016';
        QIG_VK_SL.Values['ic_a'] := '6299';
        QIG_VK_SL.Values['u_a'] := '10016';
        QIG_VK_SL.Values['ic_b'] := '6275168';
        QIG_VK_SL.Values['u_b'] := '10016';
        QIG_VK_SL.Values['247,1'] := '9';
        QIG_VK_SL.Values['2585,0'] := '20';
        AppServer.InsertDBRecord(SourceName, '', '141,0', false, QIG_VK_SL);     
      end;
    finally
      QIG_VK_SL.Free;
    end;
  end;
end.